﻿using System;
using System.Collections.Generic;
using System.Text;
using AdaptiveAgents.Agents.Choosers;
using AdaptiveAgents.Agents.Predicters;

// PDP == Probability Desision Process


namespace AdaptiveAgents.Agents
{
    /// <summary>
    /// Builds an agent that chooses the next player according to PDP with real values (not estimated values) 
    /// </summary>
    class PDPOptimalBuilder : AgentBuilder
    {
        private double[] comp;
        private double[] eps;

        public PDPOptimalBuilder(double[] comp, double[] eps)
        {
            this.comp = comp;
            this.eps = eps;
        }

        public override void buildNextPlayerDecision()
        {
            _agent.NextPlayerChooser = new PDPOptimalNextPlayerChooser(_agent, comp, eps);
        }

        public override void buildNextPlayerPrediction()
        {
            _agent.NextPlayerPredicter = new NormalNextPlayerPredicter(_agent);

        }

        public override void buildMemoryOfAgent()
        {
            _agent.Memory = int.MaxValue;
        }
    }


}
